﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;
using Play_Sound;
using System.ServiceModel.Web;
using System.Speech.Synthesis;
using System.Security.Policy;


namespace Play_sound_serv
{
    public partial class Play_Sound_serv : ServiceBase
    {
            //web服务初始化
            Speech_sev Spk_serv;
            //
            Xml_help Config = new Xml_help();
            string BaseDirectory = AppDomain.CurrentDomain.BaseDirectory;
       public Play_Sound_serv()
        {
            try 
          {
              InitializeComponent();
                // 创建配置文件
                //  Config.createrxml(BaseDirectory + @"\config.xml");
                //读取配置文件
              Config.xml_init(BaseDirectory + @"\config.xml");
              //web服务初始化
               string _url = Config.Serv_Url;
               Spk_serv = new Speech_sev(_url);
                //Speech_serv.sound_dict为语音播放数据的字典
                //第一个参数为整形，对应为命令数字
                //第二个参数为字符串，对应播报的语音
                /* 配置文件的示例
                Spk_serv.Sound_dict.Add(8000, "收到，请讲！");
                Spk_serv.Sound_dict.Add(8001, "正在切换到生产场景！");
                */              
                for(int i=0;i<Config.cmd.Length;i++)
                {
                    //语音播报的配置文件  （int） cmd:8000,  (文本)  sound:语音
                    Spk_serv.Sound_dict.Add(Convert.ToInt16(Config.cmd[i]), Config.sound[i]);
                    LOG.Log("配置 cmd："+ Convert.ToInt16(Config.cmd[i])+"  sound:"+ Config.sound[i]);
                }
            }
            catch (Exception err) 
            { LOG.Log(err.ToString()); }
        }

        protected override void OnStart(string[] args)
        {
            try 
            {   //服务运行
                Spk_serv.run();
                LOG.Log("服务play_sound_serv:启动！ ");
            }
           catch (Exception ex)
            { 
                LOG.Log(ex.ToString()); 
            }

        }

        protected override void OnStop()
        {
            LOG.Log("服务play_sound_serv:停止！ ");
        }
    }
}
